/**
 * 定义HTTP请求方法的枚举
 * 使用枚举可以提供更好的类型检查支持，并且更符合常量定义的规范
 */
enum METHOD {
  GET = "GET",
  POST = "POST",
  PUT = "PUT",
  DELETE = "DELETE"
}

/**
 * 定义所有HTTP方法的类型
 * keyof typeof 可以获取对象的所有键作为联合类型
 */
type allMethodType = keyof typeof METHOD;

/**
 * 定义POST和PUT方法的类型
 * Pick 可以选取对象中的某些属性，keyof Pick 可以获取这些属性的键作为联合类型
 */
type postOrPutType = keyof Pick<typeof METHOD, "POST" | "PUT">;

// 导出常量和类型
export { METHOD, type postOrPutType, type allMethodType };
